Die Variable Ganzzahl wurde mit der Zeichenkette "55" geladen (achte auf die Gänsefüsschen) und ist somit eine Stringvariable. Man kann in JS Variablen nur mit let, var, const oder gar nicht deklarieren, aber das hat eigentlich bloss mit dem Gültigkeitsbereich und nicht mit dem Typ zu tun.
Den Typ erhält die Variable erst mit der Initialisation (Wertzuordnen), der aber auch nicht in Stein gemeisselt ist und sich im Verlauf des Scripts auch ändern kann.
Da der Operator '+' auch zur Verkettung von Strings benutzt wir und die Variable Ganzzahl als String "geladen" wurde, werden hier die 2 Elemente verkettet
Durch die Multiplikation verwandelt sich die Variable Ganzzahl in ein Integer und das Plus wird zur Addition.
Erbring den Beweis, dass die Variable Ganzzahl durch die Multiplikation in ein Integer verwandelt wurde, somit wird die selbe Schreibweise wie in a) von einer Stringsverkettung zur Addition.
Das gleiche Experiment aber mit einer Stringvariablen ohne numerischen Inhalt.
Es wird zwar kein Fehler oder Programmunterbruch generiert, jedoch ist ausser bei der Stringverkettung das Resultat natürlich unsinnig (NaN = Not-A-Number)
isNaN(x)
Somit ist man bei der ersten Anweisung, die auf NaN prüft angekommen:
Sehr nützlich, da tatsächlich auf die Abwesenheit von Zahlen im String geprüft wird.
typeof(x)
Etwas mehr Informationen gibt typeof(x), berücksichtigt aber nicht den Inhalt eines Strings
Somit hat man auch eine Auflistung aller möglichen Datentypen in JS... obwohl "object" mehrere Typen zusammenfasst und 'number' auch keine Unterscheidung zwischen int und float macht.
Number(x)
Wie der Trick mal 1 Multiplikation wandelt auch Number(x) die Werte in einem String in Zahlen um oder gibt 'NaN' zurück:
Aber Number hat noch weitere Methoden, die typeof ergänzen. Hier nur eine kleine Auswahl, aber es ist es Wert Number(x) besser anzuschauen